The disclosures herein relate to apparatus for use in the manufacture of a computer system.
These co-pending applications are incorporated herein by reference in their entirety, and are assigned to the assignee of this invention.
Personal computer systems in general and IBM compatible personal computer systems in particular have attained widespread use for providing computing power to many segments of society. A personal computer system can usually be defined as a desktop, floor-standing, or portable microcomputer that includes a system unit having a system processor and associated volatile and non-volatile memory, a display monitor, a keyboard, one or more diskette drives, a fixed disk storage device and an optional printer.
It has been known to install software and to perform tests on computer systems before they are shipped to businesses or individual customers. The goal of software installation and testing is to efficiently produce a useful, reliable computer system which may be delivered to businesses and individuals free from errors and ready to run. In general, testing detects and analyzes errors that occur in both the hardware and software portions of the computer system. A partial list of computer system hardware tests might include diagnostics upon hardware components such as a processor, memory, a disk storage device, an audio device, a graphics device, a keyboard, a mouse, and a printer. Software installation often includes loading a desired package of software onto the computer system, preparing appropriate environment variables for the computer, and preparing appropriate initialization files for the loaded software. Software testing often includes making sure that a desired version of software has been installed onto the computer system and the appropriate drivers are present on the computer system.
It has been known in the industry to install software and to test computer systems during manufacture by performing a fixed procedure before they are shipped to customers. For instance, a diskette containing certain diagnostic tests for a certain type of computer system is created. The diskette includes lengthy, often-complicated batch files which direct the software installation and diagnostic processes. The diskette further contains all the executable files for performing tests on the computer system being purchased.
Each computer system being built is provided with a respective copy of this diskette. These diskettes accompany the computer systems being built around a factory floor during the manufacturing process, tests being run on the respective computer system according to the order inherent in the batch file. If a modification needs to be made to the process, the batch file is correspondingly changed by adding to or removing portions from the batch code. That change to the batch file results in a corresponding change to testing parameters (including the sequence in which the tests are run) of each subsequent computer system being manufactured, for each computer system shares the same batch file diagnostic procedure.
While diagnostic arrangements of this kind have exhibited some degree of usefulness in increasing the reliability of computer systems prior to shipment, room for improvement remains. For instance, as testing continues to become more complicated and thorough, batch files and executable files of the diagnostic tests often exceed the storage capabilities of a diskette. Furthermore, it is often difficult or impossible to customize testing and software installation procedures for a single build-to-order computer system or for a certain family of computer systems without modifying the testing for other systems or families. Moreover, it is difficult or impossible to modify the order of software installation or testing for a single build-to-order computer system or for a certain family of computer systems without modifying the order for other systems and families. Finally, the often-complicated nature of current batch file structures sometimes makes it difficult for manufacturers to troubleshoot or maintain testing and software installation procedures quickly and efficiently.
Therefore, what is needed is to provide apparatus for use in the manufacture of a computer system which provides improvements to the prior art.
In one embodiment accordingly, there is provided an apparatus for use in the manufacture of a computer system, the apparatus comprising a step table containing substantially all software installation and/or testing steps for all components of all computer systems being manufactured at a given site, a component table containing substantially all components that are included within all computer systems being manufactured at the site, and a step dependency table identifying steps in the step table which are incompatible with the presence in the computer system of a component other than that corresponding to the steps.
In another embodiment there is provided an apparatus for use in the manufacture of a computer system, the apparatus comprising a step table containing substantially all software installation and/or testing steps for all components of all computer systems being manufactured at a given site, a component table containing substantially all components that are included within all computer systems being manufactures at the site, and a step parameter table identifying steps in the step table which require a parameter.
In a preferred embodiment, the computer system corresponds to one of a family of computer systems and the apparatus further includes a family-step relation table, a family-component relation table and a component-step relation table. The family-step relation table identifies the relationship between a set of software installation steps and each family of computer system being manufactured. The family-component relation table identifies the relationship between the family of computer systems and the set of components. The component-step relation table identifies the relation between a component and a set of software installation steps appropriate for the corresponding component.
The apparatus according to one embodiment provides for effective software installation and computer testing which allows for straightforward troubleshooting and customization of build-to-order computer systems. The modular design of the apparatus advantageously allows for elementary maintenance of a testing system and for the rapid creation of steps for new computer systems and families.